Skip to main content

Virtual Machines

Realms

The Realms are the hypervisors of a specific type of computer software that is used to create and run virtual machines. Realms can only be managed in the configuration files.

Users can view the Realms that exist in the system through the Realms tab in management. Associated to each Realm is a Driver. The purpose of this driver is so the backend of the system knows HOW to communicate to the infrastructure.

Users of tiCrypt cannot create their own realms. The realms section of the management tab is just to see which realms and drivers exist in the system.

info

Realms do not connect to other realms.

The actions that can be done in this tab are as follow.

ActionNotes
Fix VMs A user sync up all of the current VMs.
Fix drives A user can sync up all of current drives.
View Config Super Admins can view the backend configuration of the Libvirt Realm.

About every hour, the backend of the system syncs up what is in the database and what is known to libvirt to actually be running. If a user would not like to wait and would like to do it manually they can do so by selecting fix VMs and/or fix drives.

note

Only the Super-Admin role is able to use the view config option in realms.

Libvirt Hosts

The Hosts are the servers that host the virtual machines, or where the virtual machines live. These servers are physical and actually exist somewhere. These hosts are the "home" of the realms, which is the software that creates and run the VMs. Each of these realms consists of servers and other components.

A Host can be added by selecting the Register New Libvirt Host button located at the top right side. A modal will appear that prompts the user to select:

  • The Realm
  • Name of the Host
  • URI (Uniform Resource Identifier)
  • The Hardware Profile
  • State of the Hardware
note

You can select a static address translation by checking:

  • Use static address translation.

This option allows you to input NAT settings such as IPv4 address and an NAT Port base.

A Host has the following actions.

ActionNotes
Shut down A user can shut down a host.
Delete A user can delete a host.
Edit A user can edit the basic information about a host such as the name.
Change State A user can change between three states of the host.
Check utilization A user can check the resources that have been used up in the host.
danger

When a host is Shut down, all running VMs, service VMs and data-in VMs of the host(s) will be shut down, which may cause all non-persistent data to be lost.

Hosts can be in three different states as follows:

Enabled: tiCrypt can interact with the host and schedule VMs on it.

No scheduler: tiCrypt can interact with the host however, it cannot schedule VMs on it.

Disabled: tiCrypt cannot interact with the host nor can it schedule VMs on it

The reason for change state option is to allow a flexible architecture of the Libvirt hosts over Virtual Machines.

The Check utilization option serves various resource management purposes and has the following quotas:

  • Name of the host
  • Realm ID
  • Current number of active VMs out of the total VMs
  • Current number of cores out of the total cores
  • Current memory out of the total available memory
  • Current number of devices out of the total available devices

Hardware Profiles

The Hardware profiles define the specific VM hosts on the system. These are necessary to transfer the information to the scheduler about what resources are still available on the host. Hardware profiles tell the system how many resources on a specific host are allowed to be used for scheduling and running virtual machines.

To create a new hardware profile, click the Create New Hardware Profile button at the top right panel.

Type the following details:

  • The Realm
  • Name of Hardware Profile
  • Description
  • Cores & Max Memory (RAM capacity)
  • Device name
  • ID
  • Quantity

Click .

Hardware Profiles have the following actions.

ActionNotes
Delete A user can delete a hardware profile.
Edit A user can edit a hardware profile.

Libvirt Storage Pools

There are different tiers of Libvirt Storage Pools that a user may want to use for their drives such as flash or slower spindle. Libvirt Storage pools is the interface that allows fast or slow types of drives to be created.

To create a new Libvirt Storage Pool, click the Create New Libvirt Storage Pool button at the top right panel.

Type the following details:

  • The Realm
  • Name of the storage pool
  • Type of volumes stored in the pool:
    • Drives
    • Hardware Setups
    • Raw Volumes
    • Images
    • ISOs
  • Default or non-default state for storing drives
  • Location in VM host filesystem
  • Location in Backend host filesystem
caution

Location in VM & Backend host filesystems must exist and allow the tiCrypt user to write. Failure to do so will result in unusable storage pools.

Click .

ActionNotes
Delete A user can delete a Libvirt storage pool.
Edit A user can edit a Libvirt storage pool.

Libvirt Volumes

The Libvirt Volumes are essentially the "disk" where the operating system lives. Users cannot populate the volume tab through tiCrypt. Rather, the system backend communicates with the host and requests all of the volumes that have been integrated into the system.

Libvirt volumes listing

VM Images

The VM Images are fully configured virtual machines files that are used during deployment. A virtual machine defines the Realm, the volume, and the operating system. When defining the OS upon creating an image, the OS MUST match the OS that is associated with the Volume.

note

For each Volume, there can only be one VM Image.

To create a new VM Image, click the Create New VM Image button at the top right panel.

Type the following details:

  • The Libvirt volume for the VM Image
  • Name of the VM Image
  • Operating System
  • Brief Description

Click .

ActionNotes
Delete A user can delete a VM Image.
Clone A user can clone a VM Image.
Edit A user can edit a VM Image.

VM Hardware Setups

The Hardware Setups are configuration setup templates for virtual machines. They specify the following:

  • Realm the VM will use
  • Virtual machine image
  • Number of cores
  • Amount of memory (RAM)
  • List of devices such as GPUs/FPGAs
  • Debug options such as pty and console
  • Creator of the hardware setup

To create a new VM Image, click the Create New Hardware Setup button at the top right panel.

Type the following details:

  • The Image for the Hardware Setup
  • Cores & Maximum Memory (must be at least 1 GB)
  • Video type
  • Devices
  • Name
  • Optional Description
  • Team(s)
  • User(s)
  • Usage Instructions

Click .

note

Applying quotas to hardware setups is optional. However, it is recommended to apply quotas for good practice.

The actions that can be done on a hardware setup are as follows:

ActionNotes
Edit A user can edit the components of the hardware setup.
Clone A user can clone an existing hardware setup.
Simulate allocation A user can simulate how the scheduler would land on the host. This is commonly used for debugging.
Delete A user can delete a host.

VM Configurations

This tab shows all of the VM configurations in the system of both running and shutdown VMs. Virtual machines can be shared, edited, shut down and bulk deleted.

ActionNotes
Share A user can share VM configurations with other users.
Edit A user can edit the VM configuration basic information,projects, hardware setups and drives.
Bulk Delete A user can bulk delete VM configurations.
info

You can edit a VM configuration to a project only if you are part of that project.

caution

You cannot delete a VM configuration that is currently running.

Running VMs

Admins may view all running virtual machines in the system along with the:

  • The VM Runtime
  • The Owner
  • The Associated team
  • Whether or not it is a debug machine
  • Wether or not is a connected machine
  • The VM configuration
  • Cores & memory
  • VM ID
  • Host Server
  • IP Address
  • MAC Address
note

If no VM's are running, nothing will appear in this tab.

When a VM is selected, there are a variety of actions that can be done.

ActionNotes
Set Project A user can assign a new project to the virtual machine if and only if the tag of the new project is a subproject of the parent one.
Shutdown A user can shut down a virtual machine from the management tab.
View logs A user can view the logs pertaining to selected virtual machine.
Libvirt XML description A user can view the Libvirt XML description for the selected virtual machine.
Open VNC A user can open a VNC terminal which is used for running virtual machines in debug mode. This enables admins to login to debug an issue.
info

If you own a VM you will notice some additional options similar to the Vault options such as open remote application, transfer files to/from vault, open SFTP pathway, open terminal.

All of these actions can be accessed as seen in the video below.

Running VMs Options

Past VMs

The Past VMs will show the hundred most recent VMs that have been shut down or that have become inactive. It is very important to view logs if something unexpectedly went down. The only action that can be done here is to view logs.

Service VMs

The Service VMs displays all of the service VMs that exist in the system. Recall that service VMs are VMs that are used for a more harmonious workflow in updating and maintaining virtual machines. Service virtual machines are virtual machines that have minimal restrictions, have access to the internet but do NOT have access to the encrypted drives or the vault. These machines cannot be used for research and they are only available for maintenance by administrators.

note

Service machines are exclusively used in this tab. They do not exist anywhere else in the system.

To create a new Service VM, click the Create New Service VM button at the top right panel.

Type the following details:

  • The VM Image
  • Cores & Maximum Memory
  • Name of the Service VM
  • Brief Description

Click .

The actions that can be done here are as follows:

ActionNotes
Restart Controller A user can edit the basic information about a host.
Shutdown A user can shutdown a virtual machine.
Delete A user can delete a virtual machine.
Edit A user can edit information about the VM such as cores, memory, etc.
Open VNC A user can open a VNC terminal .
Power up A user can turn on the VM.

Drives

The Drives display all drives that exist in the system.

For each drive, the name, owner, team, drive ID, drive size, drive format, backup, type and storage pool are displayed.

A Drive has the following actions.

ActionNotes
Transfer ownership A user can transfer ownership of the drive to another user.
Unshare with everyone A user can unshare a drive with everyone.
Delete A user can delete a drive.
Edit A user can edit information about the VM such as cores, memory, etc.
Open project A user can open a VNC terminal .
Share A user can share a drive.
info

In order to transfer ownership of a drive, the owner must explicitely share the drive with you read-and-write. This rule applies to all user roles in tiCrypt.

The way that the drives work is as follows.

When a user creates a drive, it is encrypted using their public key, and another key that the system generates called a symmetric key. This information is sent and lives on the server. If a user would like to share access of the drive with another user, their private key is used to decrypt the symmetric key. Using the receiver's public key, a version of the symmetric key is created, and another "chunk" of information is sent to the server.

The cryptography used for the drives prevents any type of admin in the system from simply granting themselves access to a drive and taking them over. Only users who were added to or created a drive can access them.

ISO Images

The ISO Images display all images that are uploaded in the system.

For each ISO image, the name, realm, owner, file, team, wether is bootable or has a service, readers and tokens are displayed.

note

This tab is used only to view and upload ISO Images.

To upload an ISO Image, click the Upload ISO button at the top right panel.

Next select and type the following details:

  • The Realm
  • Drag-and-drop the ISO file
  • Name of the ISO Image
  • Description
  • Wether the ISO will be bootable
  • Team(s)
  • User(s)

Click .

Licensing Servers

The Licensing Servers allow users to add IP addresses that all of the virtual machines can connect to. These servers allow you to create entries that get placed in an allowed list that all VMs can access when running. This may be used to contact licensing servers for software.

ActionNotes
Create A user can edit the basic information about a host.
Re-sync A user can shutdown a virtual machine.
Export CSV A user can edit information about the VM such as cores, memory, etc.
Delete A user can delete a virtual machine.

To create a new Licensing Server, click the Create New Licensing Server button at the top right panel.

Type the following details:

  • The Servers domain name (or IPv4 Address)
  • The ports number
  • Protocol (TCP or UDP)
  • Optional Group
  • Deactivation date

Click .

info

You can re-sync rules of the server by clicking the Resync Rules button in the top right panel.